home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_1 / proot < prev    next >
Internet Message Format  |  1995-03-31  |  13KB

  1. From: William C Wickes <billw@hpcvra.cv.hp.com>
  2. Subject:  v03i016:  proot - Polynomial Rootfinder v1.0, Part01/01
  3. Newsgroups: comp.sources.hp48
  4. Organization: Hewlett-Packard Co., Corvallis, OR, USA
  5. Followup-To: comp.sys.hp48
  6. Approved: spell@seq.uncwil.edu
  7.  
  8. Checksum: 2661449879 (verify with brik -cv)
  9. Submitted-by: William C Wickes <billw@hpcvra.cv.hp.com>
  10. Posting-number: Volume 3, Issue 16
  11. Archive-name: proot/part01
  12.  
  13.  
  14. BEGIN_DOC proot.doc
  15.               HP 48 Polynomial Rootfinder, for Real Coefficients
  16.  
  17. The HP 48 object listed below in ->ASC form is a high-performance polynomial
  18. root finder.  Those of you who remember the HP 71B Math Pac will recognize
  19. this as the same as the PROOT command from that Pac; it is in fact the same
  20. assembly-language code, given an RPL front end to operate in the HP 48.
  21. I will refer to the object as PROOT; you can, of course, give it any
  22. name you please by storing it in a global variable.
  23.  
  24. PROOT takes a (real) vector of coefficients in descending order, and returns
  25. a complex vector containing the polynomial roots:
  26.  
  27.              [ An An-1 An-2 ... A0 ] PROOT -> [ R1 R2 ... Rn ]
  28.  
  29. represents the determination of the n (complex) zeros R1 ... Rn of the
  30. nth-order polynomial
  31.  
  32.                     An x^n + An-1 x^n-1 + ... + A0
  33.  
  34. There is no limit on n, other than available memory and execution time.
  35. The coefficients Ai must be real numbers, but this limitation is at least
  36. partially compensated for by the speed and accuracy of the algorithm.  Also,
  37. no initial guess or stopping criterion is required.  PROOT uses
  38. Laguerre's method for n>2, or the quadratic or linear formulas for n<=2.
  39. You are referred to the HP 71 Math Pac Owner's Manual for more information.
  40.  
  41. The use of vectors rather than lists for the input and output derives from
  42. PROOT's HP71 origins.  You can easily add list/vector conversion around
  43. this object to make a more versatile version.  To be more fully compliant
  44. with HP 48 style you can write user-language programs to extract the
  45. polynomial coefficients from an arbitrary expression to use as a preliminary
  46. to PROOT, and to convert the result elements back into a factored expression
  47. (x-R1)(x-R2)...(x-Rn).  Examples of such programs are listed in
  48. HP 48 Insights Part II (if you'll excuse the plug).
  49.  
  50. Enjoy.
  51.  
  52. Bill Wickes
  53. HP Corvallis Division
  54. END_DOC
  55.  
  56. BEGIN_ASC proot.asc
  57. %%HP: T(3)A(R)F(.);
  58. "D9D20D29512BF8171040D9D2088130F853059F30E2B30399162BC81881302653
  59. 08DA364EC307F8162ED73F2926DEE32FA42524430CAF0611920A20002CE30119
  60. 2078200CBD30D2473CCD2067610823179E7E78FB97601C914313016913210417
  61. 914313016E1641421011641321031C414313016E142CC8A85016416913210211
  62. 41311111411741411761131411333466200CA131340000912A134152716F058F
  63. A4CB28E78D011A24902A090EA05A08BA501028F88AC0111CC10150C20AC28EC4
  64. B0AC28E1AB011234084002490C708BE1605E26C002034889991088EA2A014710
  65. 91318E22D09795105118CA8E68B08EAEC08F88AC0119CE10952DAC2B468EECA0
  66. AC2B468E02B011C135147CECE4B2CE5558E5B018E4F218E43A08EC4E08E2CB08
  67. C62A08EA9901318E6AC08E29C005BCC8EDE90AF21081098C7F901438E85418FA
  68. 4CB28EFCD08EC4018E87118E05C08E859011C1351478E3FE08E3EF0D28E5EE00
  69. 58FBCEB28F779B2AC08F896B28F6DEB28F779B28FAA6B28EC0218ECEB0AF2AF3
  70. 2EB07B578ED2908E8BB08E97C01348E2C80147CE131AF0AF18E2AB08EFAB0AC0
  71. 18F1848ED8B010B8EE9B0058E5E808E33B08E89B08E2B808EA6B08E87B08E51B
  72. 08EBB808ED6B0AC21238AC50BCE1238ED7808EF2B08F88AC011BCE559058E04B
  73. 08EB880BCC8E13B08FD7EB28E44808E6FA018F1848E02808E7990460642F8EFF
  74. 70AF2CEAF3A5F8E82808EB4C08E73A08E7CA0058E5180AF3AF22B335441AFF8E
  75. 7F708E6B018E69A08EBAB0AF0AF18E07A08EA6A0D28E43D0AC08EFBB011C1351
  76. 79AE214D8EB7C08E60E08EDC908EA5A08FB8EB28EFD804606645794774A78E8D
  77. D070578E0C804A411C13517914F96E918E68C072E673178E898052276078E24B
  78. 0057F0777478E93908E109011C135179AC2B46155420324A08E75C01348E1290
  79. 17F1743068ED9908EA890A0E50F8E66B077668E18907B868E88800576A68EE28
  80. 0719678968E02808EED808E24808ED5B005AF2CEAF32EB07B0774868ECB808E7
  81. 390AC28E0C7046064418ED7808ED0908E5BC0AF0AF18E1E808E199013477E514
  82. 7CE10AE61318EBD8013710B1378E9B808EEAB06D508E3C800571068E06808EFB
  83. 807BD578174F28EC8808E34808E498074D51CF1C48EB8807EA57BE65606E2B8E
  84. 55808EC5800577A51231338EE5801331237B7578B64FC8EF1808F88AC011ACE1
  85. 0A460646FAF210810974258E71807CB78EB18018F18473B68ECD6079A67A0571
  86. A6AC08ED2908408C7FB07E3771E67AD48E79F08EE6B078D475258EF68013470A
  87. 670A4147131DACE10ACE06D670971331031338E96A07127AF2154716F154716F
  88. 15471697457154716F14416477171128AC021371088E469011813572E6712760
  89. 2007068B2017DC61CF1C46FA018F1847E177D9672067AE6057AB5724472B572B
  90. 67D34BCC7114BCC79867AE6760471767F35560628971B616F16475B57D967F65
  91. 16F16478F371657A467CE3BCC70C3BCC72F5729675B376267EE4560613970661
  92. 6F16473660573B312313371661331237E737A568FD7EB20706D711A8B7F17FE4
  93. 7295723617F1747963BCC744375845808C7C8F78E58F88AC011ACE10A4606F9E
  94. 07769575D578457AD58E28908E108078D2794777B40577037BA570D27E037AB2
  95. 75137113BCC75351361341357CB47C857D9579B27D657C75AF2AF32E303A8F79
  96. B27B75779279C579A21371361377DF4763571627EA2BCC16F1647A827E357162
  97. 78D479357D057684781573627D727FF479048EBAC07A468508C419011C135179
  98. 157494E606BA005AF0CCAF12E305A852032EC07AE317F17478B47FF170947AB1
  99. 17F17473B38E54C08E44807CB173C17DA17623919606FEA760475748ED18078F
  100. 3776471C17D6179E5057F7170A17071743175E246062C08D04F01170157494E5
  101. 5B461554759605787176F072147C117071701579837F03785377E279737CF305
  102. 74017A41723378036A8A7CF575E27692734374C3AF22C32521AF7AD2BCE78907
  103. F017357AF0AF12EB0579527AC67EA47F728F88AC0613A73A57C8211997A91118
  104. 05BCE1087BD074857D627FC0CE1087B0613411879361187A337923068F88AC00
  105. 7CE5AE8C836FAF9AF7AF601AFDAFFAFDAFE0104114131203427200CA018DF6EB
  106. 28D5BEB28D0CEB28DBCEB28D6DEB27EEF136061368FAC7B2071340174DF8DE19
  107. B27BB264FF7E7F6CEF8D779B28D9DBB28DCBBB2058F64E927B318F64E9212011
  108. C13517B147134150716F110150716F8F88AC01361451CB147CE1458AE00208F2
  109. D760142164808C114ACA10413114710870C497D0013713411878C1DB8FC0760A
  110. F011C94AD0B542EB055D0058F141A20476757F3F64BF114ACA104D2796497D00
  111. AF011C94AE02EB0505CCAB07F35780F45D05D6C62034000504908BE0001FA8B2
  112. 4001AF0AF10305BCE7C8E2E9190094800017831740070318D99EB275716CEF75
  113. 917311792171EF7701AFAAFBAF50171F07ACF79E065CF720175A47AF065BF7BE
  114. 0759473E065AF7D105607673057C74700076C07D0E61A0AF0AF12EB05B05011C
  115. F1C41CF1C41CF1C41CF1C41CF1CF1C90117F17417F17417F17417F17417F17F1
  116. 790118F18418F18418F18418F18418F18F1890116F16416F16416F16F16901D7
  117. F3C3C6C3C3011CF1C48D660C218F1848DB40C21CF1C48D3EFB28DDFFB28D710C
  118. 28D130C220349020066202034E120069102034D52006C0020344F100D711C04C
  119. B05134689F2034902006C0020344F100D711C04CB05134629F20321106DF1203
  120. 262062F12032B3067E120320506CD1203256061D12032A7066C12032F806BB12
  121. 0324A060B120329B065A12032EC06A9120323E06F8120328F064812032D01697
  122. 120322216E61203273163612032C41685120321616D41203267162412032B816
  123. 73120320A16C2120325B161212032AC166112032FD16B0120324F16001203211
  124. 06DF0203262062F02032B3067E020320506CD0203256061D02032A7066C02032
  125. F806BB020324A060B020329B065A02032EC06A9020323E06F8020328F0648020
  126. 32D01697020322216E60203273163602032C41685020321616D4020326716240
  127. 2032B81673020320A16C2020325B161202032AC166102032FD16B007310665D7
  128. B00686D20326200423310020D711CCB135017400634D04D711C135147EB7FFC2
  129. 03427200C3137CB135017C0069FC74006B0D04D711C135147EF174147CB7FBC2
  130. 034282006FBF774D7D0A779B75EC710A6E8B7AFC7E1D7B0A76C979C9706C720A
  131. 72D979D9736BBCC7FE973A9714C749C744C7BD97BA965B97FAC783BBCC7C797B
  132. 342E91DA1AC1B05AF223305AFA8D16EB277FB763C7B5979EF7E3C7F6F7FDB704
  133. C8FB8EB276897FDA72497A7966DA77AE134D230270CEAF210810930270FB73AA
  134. CE55F01793B7EEA057083718F11C13514704CE10AE67DAEAC0057FF87EBBAC27
  135. ED88F88AC011ACE10A5FD058606079F8203431000EA730C8E588F77CD8ED48F8
  136. F7AEB2720A5808CED7F11C135179157494AF17A4D8E768F8E228F73D95808C93
  137. 6F78407C8A7E1B8E628F766A712A75B28E6E7F8F7AEB28EE28F8ED18F7F8991D
  138. 808C967F8CE70F798C7BE97C997FD97D4E7CFB77B9754A78CA8FB8EB2057FE98
  139. ED08FBCC8F0B7B27BE971C98EBA7F8F7A7B2203205075A98E397F8ECB7F8EFD7
  140. F739978907929799C7C697B8D8EB57F7EBC058F7A7B28E467F8E967F73BD7E79
  141. 79197DC117F174700A8E227F7FBB7129057FA1746B7EF90572C18EC17F8EB37F
  142. 8E49DF7C4C8EFF6F78785008E4E6F6EA9726C74E87C497CD879098E2C8F8E578
  143. F743974B877DC74C07B398E848F7BE87A988ED48F77BC8E348F8E478F7F8C72A
  144. 016F1648E618F75C88E668F7A708E518F8EB96F8E208F8EF86F8E466FAC67CD8
  145. 8E728F94A607640793C8EDD7F8EB68F8E818F768C8E768F8E8E7F70888EEF7F8
  146. E9B7F766C8EB38F8CCC7FBCC118BCE108018E1D5F8E087F7CF87E5097D606D5C
  147. 8E0D5FAC28E2D5F8EB06F7D507D3C8E6F5F18F18474988E465F8E9D5F11A94A0
  148. 1118AC6108AC0018CE17F2E11991E70AC00191DB08E255F5FE77008DF0AB28E7
  149. 85F8E6E6F8EB75F8CC45F3191AF1A7504C405550B75A6E5DE25A3CB3481591D7
  150. FBF5AD4AC001B2130B21307FF2"
  151. END_ASC
  152.  
  153.  
  154. BYTES: #2FF7h 2964.5
  155.  
  156. BEGIN_UU proot.uue
  157. begin 644 proot
  158. M2%!(4#0X+46=+="2%;*/<0$$G2V`&`./-5#Y`RX[,)EALHR!&`-B-8"M8^0\<
  159. M<(]AXGWSDF+M/O)*4D(TP/I@$2F@`@#"/A"1`H<"P-L#+73#W`)V%H`R<>GGE
  160. MA[]Y!L$9-#$0EC$20'$9-#$0YF$4)`$11C$2,,$4-#$0YD'"C(H%8126,1(@]
  161. M$103$1$4<104<18Q01$S0V8"P!H30P``&:(Q%"47]E#X2KR"?M@0H4()HI#@F
  162. M"J6`JP4!@H^H#!'!'!`%+*`LZ$P+RH(>NA`A0X`$()3`![@>!N5B#"`PA)B9,
  163. M`8BNHA!T`1D3Z"(->5D!%8&LZ(8+Z.H,^(C*$)'L`5G2RK)DZ,X*RK)DZ"`+K
  164. M$1Q30<?.3BOL585>"X%.+X%.HX#.Y(`NO(!LHH"NF1`3Z*8,Z)(,4,N,WIZ@F
  165. M+P$8D,CW"4&#CD6!K\0KZ,\-Z$P0Z'@1Z%`,Z%@)$1Q308<^[X`^_M""7NX`K
  166. MA;_L*_AWN:(,^)BV@F_M*_AWN8*O:BOH#!+H[`OZHC_B"[=UZ"T)Z+@+Z'D,8
  167. M,80NC!!T[#&A#_J!+KJ`_KJ@#($?2.B-"P&+[KD`A5Z.@#ZS@(ZY@"Z+@*ZV5
  168. M@(ZW@%ZQ@+Z+@-ZVH"PA@\H%RQXRZ'T(Z"\+^(C*$+'L50F%#K2`OHBPS.@Q'
  169. M"_A]OH).A(!NKQ#X@80.@H!^F4`&1O+H_P?ZPJX_6H^.@H"^Q(!^HX!^K`"%`
  170. M7H&@/_HB.U-$H?_H]P?HMA#HE@KHJPOZH!_H<`KH:@HMZ#0-RH#^NQ#!,167W
  171. MZA+4Z'L,Z`8.Z,T)Z%H*^(N^@OZ-0`9F5)=T1WKHV`T'=>C`"*04P3$5ET&?!
  172. MYAGHA@PG;C=QZ)@()7(&ARZT`'4/=T>'GI.`'I`0P3$5E\JR9%%%`B.D@'[%A
  173. M$$/H(0EQ'T<#AMZ9@*Z8H.`%CVZV<&>&'IAPBX:.B`!UIH;N@G"1=IB&#H*`@
  174. M[HV`+H2`WK4`I2_L^B.^<`MWA(;.BX!^DZ`LZ,`'9&!$@=Z'@-Z0@%[+H`_Z-
  175. M@1Z.@!Z9$$-W7D'''J!N,8&^C1!S`1MSZ+D(Z*X+U@7HPPA0%V#H8`CHOPBW!
  176. M78=Q](+.B(`^A(!.B7#4%?S!A+Z(<*YUZU8&YK+H50CH7`A0=UHA$S/H7@@Q2
  177. M$S*W5X=K](S^@8"/J`P1RAZ@9&!DKR\!&)!'4N@7",=[Z!L(@1](-VOHW`:7?
  178. M:J=0%VK*@-Z2@`3(]POG<Q=NITWHEP_H;@N'35=2Z&\(,72@=J`4=#'1RAZ@(
  179. M[&!M!WDQ$S`Q@YZF<"&G+U%T81]%%_91=&%Y5!=%%_9!%$9W<1&"RB`Q%X#HL
  180. M9`D1&%,G;A=R!@)P8+@"<<T6_,%DKQ#X@70>=YUV`G;J!G6Z=4)TLG6R=CVT`
  181. MS!=!RWR)=NIV!G1Q=C]5!B:8%VMA'T976]=I]U9A'T:'/Q=6IV3'/LM\P+/,L
  182. M)U\G:5<[9V+G3F5@,7E@%O9A=&,&=;,3,C%S818S(7-^<UJ&W^<K<&!]$8I[:
  183. M'_=.)UDG8W$?1Y<VRWQ$<X54",C'^(=>^(C*$*'L`4H&]NEP9UE778=4IUWHY
  184. M@@GH`0B'+9=T=TM0=S"W6@<MYS"G*U<Q%S'+?#458S$44\=+QUC769<KUU;'&
  185. M5_JB/^(#H_B7*[=7=RF77)<J,1=C,7?]=#9U87*NLLQA'T:G*.=3%R:'39=36
  186. MUU!G2(=1-R;7)_=/ET#HJPRG9%B`3)$0P3$5EU%'26Y@JP"E#\SZ(3Y0BB4P"
  187. MX@RG/G$?1X=+]Q\'2:<;<1]'-SOH10SH1`C'&S<<UQIG,AEI8.]Z!G1UA-Z!D
  188. M</AS9W3!<6UQZ05U?W&@<7!Q-''E0@8F#-A`#Q$'44=)7K5D4457:5"'%V</)
  189. M)T''$0<7!U&7./<PAS5W+I<WQS]01Q"G%"<SAS"FJ,=?5RYG*3<T1SSZ(CQ2(
  190. M$OJG+<M^F'`/<5.G#_HAOE"7):=LYTKW)_B(RF`Q>J-UC!*1>9H1@5#+'H"W*
  191. M#4=8UR;W#.P!>`L60Q%X.1:!IS.7,F#XB,H`QU[JR#CV^JE_^@:AW_JOW_H.<
  192. M`11!,2$P)"<`K!#8;[Z"7>LKV,"^@KWL*]C6OG+N'V-@,8:O?"MP,01QU(_M<
  193. MD2NW*T;_Y_?&_MAWN8*=O2O8O+L"A6_D*;<3^$:>$@(1'%-Q&W0Q%`47]A$0`
  194. M!1?V^(C*$&-!%;Q!QQY4J`X@@"]]!D$21@C($:2L`10301>`!TQY#1!S,12!.
  195. MAQR]^`QGH`\1G*0-6R2^4-4`A1\4*D!G5_?S1OL1I*P!U')IE-<`^A#!2>H@=
  196. MOE!0S+IP/W4(3]50;6P"0P!00`FX#@#QBBL$$/J@'S!0RWZ,+IZ1`$D(`'$X)
  197. M<01P,(&=Z2M7%\;^5QDW$9<2%_YW$/JJO_H%<?%PRG_I8,5_`G&E=/I@M7_K.
  198. M<)5TXV"E?QU0!F<W4,='!P!G#-?@%@KZH!_B"[50$,$?3,$?3,$?3,$?3,$?O
  199. M_,$)$?=Q%/=Q%/=Q%/=Q%/=Q'Y<0@1](@1](@1](@1](@1_X@0D1]F$4]F$48
  200. M]F$?EA!]/SQL/#P0P1],V&;`$OB!A+T$+,$?3-CCOX+=_RO8%\""'0,L`D,)*
  201. M`F`F(##D(0"6`0)#70)@#"`P1!\`?1$,Q`L50X;Y`D,)`F`,(#!$'P!]$0S$F
  202. M"Q5#)OD"(Q%@_2$P8@(F'P(C.V#G(3`"!<8=`B-E8-$A,*('9AP"(X]@NR$P1
  203. M0@H&&P(CN6"E(3#B#*89`B/C8(\A,((/1A@"(PUA>2$P(A+F%@(C-V%C(3#"?
  204. M%(85`B-A84TA,&(7)A0"(XMA-R$P`AK&$@(CM6$A(3"B'&81`B/?80LA,$(?S
  205. M!A`"(Q%@_2`P8@(F#P(C.V#G(#`"!<8-`B-E8-$@,*('9@P"(X]@NR`P0@H&\
  206. M"P(CN6"E(##B#*8)`B/C8(\@,((/1@@"(PUA>2`P(A+F!@(C-V%C(##"%(8%M
  207. M`B-A84T@,&(7)@0"(XMA-R`P`AK&`@(CM6$A(#"B'&8!`B/?80MP$V!6?0M@U
  208. M:"TP8@)`,A,``GT1S!M3$$<`-M1`?1$<4T'G>_\L,"0G`#PQQQM3$,<`EL]'@
  209. M`+;00'T1'%-!YQ]'0<=[ORPP)"@`]OMWU->@=[E7SA>@YKBGS^?1MZ!GG)><'
  210. M!\8GH">=EYTWMLM\[WFC>4%\E'Q$?-MYJVFU>:]\.+O,QY>W0^(9K:$<"Z4O?
  211. M,@.EK]AAOG+W>S9\6WGI?SY\;W_?>T",O^@K9YCWK2>4IY=FK7?J,=0R(`?L\
  212. M^A*``3D@![\WJNQ5#W$Y>^X*=8!S@1_!,15T0.P!ZG:MK@Q0]X_GN\IRWHB/5
  213. MJ`P1RAZ@]0V%!@:7CP)#$P#@>@.,7HA_QXW>A(]_ZBLGH(6`['T?P3$5EU%'.
  214. M2?IQ2HU^AH\N@G_360C(.?:'!,>HY['H)OAGIA>B5ROHYO?XI[Z"[H*/WH%__
  215. MCYG1",AI]\A^\)?(MY['F?>=U^3'OW>;5Z2'K/B+O@)U[XG>@+_,^+"W<NMY`
  216. MP8F^>H]_>BL"(U!PI8D^>8_.>X_^?7^3>9AP*7F9?&QYBXV^=7^^#(5_>BOHU
  217. M9/?H:?<WV^>7EY'7''$?1P>@Z"+W][L7DE#W&D>VYY]0)QSH'/?H._?HE/W'!
  218. MQ.C_]H>'!8!.;F^N>6)\Y'A,>=QX"8DNC(]>AW\T>;1XUWS$<#N)CH1_ZWB:'
  219. MB-Z$?[>,/H2/3H=_CWRB$/9AA&Z!?\6(;H9_>H!>@8^^:8\N@(_^:(].9J]L$
  220. MQXWH)_A):G!&<#F,WGV/OH:/CH%_AHQ^AH^.?G^`B.Y_CYY[?V:,OH./S'R_H
  221. MS!&X[`$(@1Y=CPYX?_QX7I#7!M;%Z-#URH(N78^^8']=<#V,;E\?^(%TE(A.]
  222. M5H^>71^A20H1@<H6@,H`@>QQ+QZ1&7Z@#!`9O8`N55_O=P#8#[J"?EB/;FZ/B
  223. FOE>/S%0_D:$?>@7$!%4%>Z7FU2ZEPSN$41E]OU_:I`P0*S&P$@.PS
  224. ``
  225. end
  226. END_UU
  227.